/**
 * Demo演示
 */

/**
 * 添加部门
 */
function addDept() {
	$("#deptForm :input[type!='button']").val("");
	$("#deptForm :input[type!='button']").removeAttr("disabled");
	$("#msg").html("");
}

/**
 * 编辑部门
 */
function editDept() {

}

/**
 * 保存部门
 */
function saveDept() {
	var parm = {
		dept : {
			id : $("#deptForm #id").val(),
			code : $("#deptForm #code").val(),
			name : $("#deptForm #name").val()
		},
		employee : {
			id : "123456",
			name : "小强"
		}
	};

	if (parm.code == "" || parm.name == "") {
		alert("数据填写不完整");
		return;
	}

	$.ajax({
		type : "POST",
		url : "http://localhost:8080/erp/demo/savedept",
		data : JSON.stringify(parm, true),
		contentType : "application/json",
		dataType : 'json',
		success : function(data) {
			var p = '<li>'
					+ '<input type="checkbox" value="' + data.id + '"/>'
					+ '<a href="javascript:return void(0);" onclick="javascript:loadEmps(\'' + data.id
					+ '\');">[' + data.code + ']' + data.name
					+ '</a></li>';

			$("#depts").append(p);
			setDept(data.id, data.code, data.name);
			
			$("#deptForm :input[type!='button']").val("");
			$("#deptForm :input[type!='button']").attr("disabled", "disabled");
		},
		error : function(xhr, status, err) {
			$("#msg").html(xhr.responseText);
		}
	});

}

/**
 * 删除部门
 */
function delDept() {

	var deptids = [];
	var list = [];
	$("#depts :checkbox").each(function(i, n) {
		if (n.checked) {
			deptids.push($(n).val());
			list.push($(n).parent());
		}
	});

	$.ajax({
		type : "POST",
		url : "http://localhost:8080/erp/demo/deldept",
		data : JSON.stringify(deptids, true),
		contentType : "application/json",
		dataType : 'text',
		success : function(msg) {
			for ( var i in list) {
				list[i].remove();
			}

			$("#empGrid").datagrid("reload");
			alert("删除成功");
		},
		error : function(xhr, status, err) {
			$("#msg").html(xhr.responseText);
		}
	});

}

/**
 * 加载员工
 */
function loadEmps(deptId) {
	var url = "http://localhost:8080/erp/demo/" + deptId + "/emplist";
	var opt = $("#empGrid").datagrid("options");

	opt.url = url;

	$("#empForm :input").val("");
	$("#empForm #deptId").val(deptId); // 设置当前节点deptId
	$("#empForm :input").attr("disabled", "disabled");

	$("#empGrid").datagrid("load");
}

/**
 * 添加员工
 */
function addEmp() {
	var list = [];
	var chks = $("#depts :checkbox");
	var sel = false;
	var deptId = "";
	for ( var i in chks) {
		if (chks[i].checked) {
			deptId = $(chks[i]).val();
			sel = true;
			break;
		}
	}

	if (!sel) {
		alert("请选择部门");
		return;
	}

	$("#empForm :input").val("");
	$("#empForm #deptId").val(deptId);
	$("#empForm :input").removeAttr("disabled");
	$("#msg").html("");
}

/**
 * 编辑员工
 */
function editEmp() {

}

/**
 * 删除员工
 */
function delEmp() {
	var row = $("#empGrid").datagrid("getSelected");
	if (row) {

		$.ajax({
			type : "POST",
			url : "http://localhost:8080/erp/demo/delemp/" + row.id,
			// data : JSON.stringify(empIds, true),
			// contentType : "application/json",
			dataType : 'text',
			success : function(msg) {
				var idx = $("#empGrid").datagrid("getRowIndex", row);
				$("#empGrid").datagrid("deleteRow", idx);
				$("#empGrid").datagrid("acceptChanges");

				alert("删除成功");
			},
			error : function(xhr, status, err) {
				$("#msg").html(xhr.responseText);
			}
		});

	}
}

/**
 * 保存员工信息
 */
function saveEmp() {
	try {

		var emp = {
			id : $("#empForm #id").val(),
			name : $("#empForm #name").val(),
			age : $("#empForm #age").val(),
			birthday : $("#empForm #birthday").val(),
			sex : $("#empForm #sex").val(),
			hobby : $("#empForm #hobby").val(),
			version : $("#empForm #version").val(),
			department : {
				id : $("#empForm #deptId").val()
			}
		};

		if (emp.department.id == "") {
			alert("请选择部门，再重新添加员工");
			return;
		}

		// debug_obj_prop(emp, true);
		$.ajax({
			type : "POST",
			url : "http://localhost:8080/erp/demo/saveemp",
			data : JSON.stringify(emp, true),
			contentType : "application/json",
			dataType : 'json',
			success : function(data) {
				// debug_obj_prop(data,true);
				if (data.version == 0) {
					$("#empGrid").datagrid("appendRow", data);
				} else {
					var curr = $("#empGrid").datagrid("getSelected");
					var idx = $("#empGrid").datagrid("getRowIndex", curr);
					var rows = $("#empGrid").datagrid("getRows");
					rows[idx] = data;
					$("#empGrid").datagrid("refreshRow", idx);
					$("#empGrid").datagrid("selectRow", idx);
				}
				$("#empForm #version").val(data.version);
				$("#empGrid").datagrid("acceptChanges");
			},
			error : function(xhr, status, err) {
				alert(err);
				$("#msg").html(xhr.responseText);
			}
		});
	} catch (e) {
		$("#msg").html(e);
	}
}

/**
 * 检查当前选择点
 * 
 * @param li
 */
function setDept(id, code, name) {
	// $(thisLink).prev()[0].checked = true;
	/*
	 * $("#deptForm #id").val(id); $("#deptForm #code").val(code); $("#deptForm
	 * #name").val(name);
	 */
}

/**
 * grid点击事件
 * 
 * @param idx
 *            行序号
 * @param row
 *            行数据
 */
function onGridClick(idx, row) {
	$("#empForm #id").val(row.id);
	$("#empForm #name").val(row.name);
	$("#empForm #age").val(row.age);
	$("#empForm #birthday").val(row.birthday);
	$("#empForm #sex").val(row.sex);
	$("#empForm #hobby").val(row.hobby);
	$("#empForm #version").val(row.version);

	$("#empForm :input").removeAttr("disabled");
}

function debug_obj_prop(obj, isShow) {
	var str = "{";
	for ( var i in obj) {
		str += (i + ":\t(" + obj[i] + ")\r\n");
	}
	str += "}";
	if (isShow) {
		alert(str);
	}
	return str;
}
